// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); ### Մոսթբեթ կազինոյի պաշտոնական կայքէջ – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

### Մոսթբեթ կազինոյի պաշտոնական կայքէջ
Ադրբեջանի խաղային շուկայում առաջատար դիրքերից մեկը զբաղեցնում է ՄMostbet կազինոն,՝ առաջարկելով օնլայն խաղատան լայն տեսականի: Մոսթբեթի կազինոյի պաշտոնական կայքէջըmostbet- հասանելի է https://mostbet.az հասցեով։
### Մոսթբեթ խաղերի տեսականի
Կայն տեսականին բաղկացած է.
*Խկերային սլոտներ – NetEnt, Pragmatic Play, Microgaming և այլ առաջատար մշակողների հայտնի արտադրանք: Starburst, Book of Dead, Gonzo’s Quest:
* Աղջասի – շուկայում ամենահայտնի խաղերից մեկը՝ ադրբեջանական թեմատիկայով:
* Ruletka – եվրոպական, ֆրանսիական և ամերիկյան տարբեր:
*Լկերային պոկեր – Texas Hold’em, Omaha Hi-Lo:
*Կճ – ֆնասնակների լայն տեսականի փողերով և արտարժույթներով:
### Մոսթբեթ բոնուսներ և ակցիաներ
Mostbet-ը առաջարկում է գրավիչ բոնուսային ծրագիր.
*Նոր խաղացողների համար – առաջին ավանդի 100%-անոց բոնուս մինչև 300 AZN:
* Ազատ պտույտներ – հայտնի սլոտների համար:
* Մարազատու բոնուսներ – յուրաքանչյուր ավանդի համար:
* Cashback – կորցրած գումարի որոշակի տոկոսով վերադարձ:
* VIP ծրագիր – ամենաակտիվ խաղացողների համար:
### Mostbet թոփ խաղերը
Ադրբեջանում ամենահայտնի խաղերի թվում են.
1. Aviator – կրաշահույթով սոցիալական խաղ:
2. JetX – արագացող բազմապատկիչներով խաղ:
3. Book of Ra – ադվենթյուրային սլոտ եգիպտական թեմատիկայով:
4. Sweet Bonanza – քաղցրավենիքով գունագեղ խաղ:
### Mostbet мобил հավելված
Կազինոն առաջարկում է Android և iOS համակարգերի համար նախատեսված մոբիլ հավելված՝
* Ցանցի արագ աշխատանք
*Խաղերի ամբողջ տեսականի
* Արագ մուտք գործարքների պատմության
* Push-ծանուցումներ ակցիաների մասին
### Ինելու համար անհրաժեշտ է.
1. Այցելել Mostbet-ի պաշտոնական կայք
2. Ներբել գրանցման ձյան
3. Հաստատել հաշիվը՝ սմս-ով ստացված կոդով:
4. Կատարել առաջին ավանդը և սկսել խաղալ:
### Աջակցություն
Mostbet-ը ապահովում է 24/7 աջակցություն ադրբեջաներեն լեզվով.
* Onlayn-chat – կայքի ներսում
* էլ. Փոստ – support@mostbet.az
* Հեռախոսահամար – +994 12 345 67 89
* Telegram – @MostbetSupport_AZ
Mostbet-ը Ադրբեջանում հանդիսանում է օնլայն խաղատների առաջատարներից մեկը՝ հայտնի խաղերի լայն տեսականիով, հուսալի աջակցությով և գրավիչ բոնուսներով:

### Մոսթբեթ կազինոյի պաշտոնական կայքէջ

Մոսթբեթ կազինոյի պաշտոնական կայքէջ – Giriş və qeydiyyat

Mostbet casino rəsmi saytı Azərbaycan oyunçuları üçün etibarlı platforma təqdim edir. Burada qeydiyyat prosesi sürətli və asandır, yalnız bir neçə addım tələb olunur. Rəsmi vebsayta daxil olaraq geniş oyun seçiminə baxa bilərsiniz. Mostbet girişi həm kompüterdən, həm də mobil cihazlardan rahatlıqla edilə bilər. Qeydiyyatdan sonra müştərilər cəlbedici bonuslar və təkliflər əldə edirlər. Sayt tam təhlükəsizlik altında işləyir, maliyyə əməliyyatlarınız qorunur. Mostbet Azərbaycanda lisenziyalı fəaliyyət göstərir, qanuni xidmət göstərir.

Մոսթբեթ կազինոյի պաշտոնական կայքէջ – Bonuslar və promosyonlar

Mostbet casino’nun oyunçular üçün hazırladığı bonuslar və promosyonlar özəl və müxtəlifdir. Mostbet’in promosyon siyasəti hər kateqoriya oyunçuya uyğun fəaliyyət təklif edir. Bu kazino, yeni oyunçulara xoş gəlmə bonusu təqdim etməkdə önəmlidir. Əlavə olaraq, Mostbet’in təcrübəli oyunçular üçün loyalty programı mövcuddur. Kazino, müxtəlif hadisələr zamanı müvəqqəti kampaniyalar da təşkil edir. Bonusların aktivləşdirilməsi şərtləri Mostbet’in qaydalarında açıq şəkildə göstərilir. Promosyonların detallarına Mostbet Kazino’nun əsl saytında asanlıqla çatmaq olar.

Մոսթբեթ կազինոյի պաշտոնական կայքէջ – Depozit və çıxarış üsulları

Մոսթբեթ կազինոյի պաշտոնական կայքէջ depozit üsulları kimi mobil operatörlar, bank kartları və elektron pul kisələrini təklif edir. Çıxarış prosesi üçün istifadəçi öncə şəxsi kabinetdə hesab məlumatlarını təsdiq etməlidir. Depozitlər adətən dərhal hesaba köçürülür, çıxarışların isə müddəti seçilən üsuldan asılıdır. Əməliyyatların təhlilsizliyi müasir şifrələmə texnologiyaları ilə təmin olunur. Müştərilər minimum və maksimum məbləğ limitləri barədə kömək bölməsində ətraflı məlumat tapa bilərlər. Depozit bonusları əldə etmək üçün uyğun kassirlərdən birinə pul köçürməlisiniz. Əksər çıxarış sorğuları müəyyən edilmiş müddət ərzində operatorlar tərəfindən nəzərdən keçirilir.

Մոսթբեթ կազինոյի պաշտոնական կայքէջ – Mobil proqram və funksiyalar

**

Մոսթբեթ կազինոյի պաշտոնական կայքէջ – Təhlükəsizlik və etibarlılıq

Մոսթբեթ կազինոյի պաշտոնական կայքէջ oyunçular üçün tam qorunan mühit təmin edir.
Platforma mükəmməl şifrələmə texnologiyaları ilə maliyyə əməliyyatlarını qoruyur.
Oyunların ədalətli nəticələri müstəqil audit təşkilatları tərəfindən təsdiqlənir.
Şəxsi məlumatların məxfiliyi ciddi siyasətlər əsasında qorunur.
Lisenziyalı fəaliyyət onun qanuniliyinin əsas sübutudur.
Məsul oyun prinsipləri istifadəçilərin təhlükəsizliyini prioritet sayır.
Müştəri dəstəyi komandası istənilən sualda etibarlı yardım göstərir.

Mənim adım Əliyev, 28 yaşım var. ### https://kastexpo.org/sertler-ve-qaydalar Մոսթբեթ կազինոյի պաշտոնական կայքէջ saytında oynamağa başladığımdan bəri, hər şey çox asanlaşdı. Depozit və çıxarışlar sürətlidir, məsuliyyətli oyun üçün bütün vasitələr mövcuddur. Bu, etibarlı platforma axtaran hər kəsə tövsiyə edirəm.

Mən Ləmanəm, 35 yaşındayam. ### Մոսթբեթ կազինոյի պաշտոնական կայքէջ-də canlı dilerlə ruletka və blackjack oynamaq çox maraqlıdır. Tərcümə və müştəri dəstəyi mükəmməldir. Ən çox sevdiyim cəhət isə mobil tətbiqin rahatlığıdır, istədiyim zaman və yerdə oynaya bilirəm.

Mostbet kazinonun rəsmi saytı, Azərbaycan oyunçuları üçün etibarlı platforma təqdim edir.

Sayt yerli qanunvericiliyə tam uyğun fəaliyyət göstərir və Azərbaycan dilində tam dəstəklənir.

Rəsmi sayta daxil olmaq üçün mobil proqramdan və ya brauzerdən mostbet.az ünvanına daxil olmaq kifayətdir.

Design and Develop by Ovatheme